home *** CD-ROM | disk | FTP | other *** search
/ HTBasic 9.3 / HTBasic 9.3.iso / 83win / data1.cab / Basic_Plus_Examples / SYSTDIS < prev    next >
Text File  |  2001-03-02  |  6KB  |  147 lines

  1. 10    ! *****************************************************
  2. 20    ! Example: SYSTEM Widget Event Disabling
  3. 30    !
  4. 40    ! This program builds a set of widgets using the
  5. 50    ! SYSTEM widget. You can enable/disable ten events.
  6. 60    ! In addition, a status log lists all events that
  7. 70    ! occur, such as moving the SLIDER bar, etc.
  8. 80    !
  9. 90    !                   NOTE
  10. 100   !
  11. 110   ! You may need to maximize the display to see all
  12. 120   ! of the widgets.
  13. 130   !
  14. 140   ! *****************************************************
  15. 150   !
  16. 160       DIM Sys_menu$(0:13)[80],Event$(1:2)[80],Panel$[80]
  17. 170       DIM Printer$[80],Slider$[80],Meter$[80]
  18. 180       INTEGER I,Space,Sys_event,Cur_event,Events
  19. 190       DATA ACTIVATED, ALARM, CHANGED, DONE, INVALID NUMBER
  20. 200       DATA KEYSTROKE, REPAINT, RESIZED, RETURN, SELECTION, *
  21. 210       Events=0
  22. 220       LOOP
  23. 230           Sys_menu$(Events)="DISABLE "
  24. 240           READ Sys_menu$(Events)[9]
  25. 250       EXIT IF Sys_menu$(Events)[9]="*"
  26. 260           Events=Events+1
  27. 270       END LOOP
  28. 280       Sys_menu$(Events)="Quit "
  29. 290       REDIM Sys_menu$(0:Events)
  30. 300       Panel$="Panel"
  31. 310       Printer$=Panel$&"/Printer"
  32. 320       Slider$=Panel$&"/Slider"
  33. 330       Meter$=Panel$&"/Meter"
  34. 340   !
  35. 350       ASSIGN @Syst TO WIDGET "SYSTEM"
  36. 360       CONTROL @Syst;SET ("*LOAD":"HELP_EX/SBEVNTSA.SCR","*QUEUE EVENTS":1)
  37. 370       CONTROL @Syst;SET ("*NAME":"Panel","SYSTEM MENU":Sys_menu$(*))
  38. 380       CONTROL @Syst;SET ("SIZE CONTROL":"RESIZE CHILDREN")
  39. 390       ON EVENT @Syst,"SYSTEM MENU" GOSUB Sys_menu
  40. 400       ON Events GOTO E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12
  41. 410   !
  42. 420  E12: ON EVENT @Syst,Sys_menu$(12)[POS(Sys_menu$(12)," ")+1] GOSUB Event_12
  43. 430  E11: ON EVENT @Syst,Sys_menu$(11)[POS(Sys_menu$(11)," ")+1] GOSUB Event_11
  44. 440  E10: ON EVENT @Syst,Sys_menu$(10)[POS(Sys_menu$(10)," ")+1] GOSUB Event_10
  45. 450  E9: ON EVENT @Syst,Sys_menu$(9)[POS(Sys_menu$(9)," ")+1] GOSUB Event_9
  46. 460  E8: ON EVENT @Syst,Sys_menu$(8)[POS(Sys_menu$(8)," ")+1] GOSUB Event_8
  47. 470  E7: ON EVENT @Syst,Sys_menu$(7)[POS(Sys_menu$(7)," ")+1] GOSUB Event_7
  48. 480  E6: ON EVENT @Syst,Sys_menu$(6)[POS(Sys_menu$(6)," ")+1] GOSUB Event_6
  49. 490  E5: ON EVENT @Syst,Sys_menu$(5)[POS(Sys_menu$(5)," ")+1] GOSUB Event_5
  50. 500  E4: ON EVENT @Syst,Sys_menu$(4)[POS(Sys_menu$(4)," ")+1] GOSUB Event_4
  51. 510  E3: ON EVENT @Syst,Sys_menu$(3)[POS(Sys_menu$(3)," ")+1] GOSUB Event_3
  52. 520  E2: ON EVENT @Syst,Sys_menu$(2)[POS(Sys_menu$(2)," ")+1] GOSUB Event_2
  53. 530  E1: ON EVENT @Syst,Sys_menu$(1)[POS(Sys_menu$(1)," ")+1] GOSUB Event_1
  54. 540  E0: ON EVENT @Syst,Sys_menu$(0)[POS(Sys_menu$(0)," ")+1] GOSUB Event_0
  55. 550   !
  56. 560       LOOP
  57. 570           WAIT FOR EVENT
  58. 580       END LOOP
  59. 590   !
  60. 600  Event_0: Cur_event=0
  61. 610       GOSUB Event_handler
  62. 620       RETURN
  63. 630   !
  64. 640  Event_1: Cur_event=1
  65. 650       GOSUB Event_handler
  66. 660       RETURN
  67. 670   !
  68. 680  Event_2: Cur_event=2
  69. 690       GOSUB Event_handler
  70. 700       RETURN
  71. 710   !
  72. 720  Event_3: Cur_event=3
  73. 730       GOSUB Event_handler
  74. 740       RETURN
  75. 750   !
  76. 760  Event_4: Cur_event=4
  77. 770       GOSUB Event_handler
  78. 780       RETURN
  79. 790   !
  80. 800  Event_5: Cur_event=5
  81. 810       GOSUB Event_handler
  82. 820       RETURN
  83. 830   !
  84. 840  Event_6: Cur_event=6
  85. 850       GOSUB Event_handler
  86. 860       RETURN
  87. 870   !
  88. 880  Event_7: Cur_event=7
  89. 890       GOSUB Event_handler
  90. 900       RETURN
  91. 910   !
  92. 920  Event_8: Cur_event=8
  93. 930       GOSUB Event_handler
  94. 940       RETURN
  95. 950   !
  96. 960  Event_9: Cur_event=9
  97. 970       GOSUB Event_handler
  98. 980       RETURN
  99. 990   !
  100. 1000  Event_10: Cur_event=10
  101. 1010       GOSUB Event_handler
  102. 1020       RETURN
  103. 1030  !
  104. 1040  Event_11: Cur_event=11
  105. 1050       GOSUB Event_handler
  106. 1060       RETURN
  107. 1070  !
  108. 1080  Event_12: Cur_event=12
  109. 1090       GOSUB Event_handler
  110. 1100       RETURN
  111. 1110  !
  112. 1120  Event_handler:!
  113. 1130       CONTROL @Syst;SET ("*EVENT NAME FILTER":Sys_menu$(Cur_event)[POS(Sys_menu$(Cur_event)," ")+1])
  114. 1140       LOOP
  115. 1150           STATUS @Syst;RETURN ("*QUEUED EVENT":Event$(*))
  116. 1160       EXIT IF NOT LEN(Event$(2))
  117. 1170           IF Event$(1)=Slider$ THEN
  118. 1180               STATUS @Syst;RETURN ("*NAME":Slider$,"VALUE":Value)
  119. 1190               CONTROL @Syst;SET ("*NAME":Meter$,"VALUE":Value)
  120. 1200           END IF
  121. 1210           CONTROL @Syst;SET ("*NAME":Printer$,"APPEND TEXT":Event$(1)&":"&Event$(2))
  122. 1220       END LOOP
  123. 1230       CONTROL @Syst;SET ("*EVENT NAME FILTER":"")
  124. 1240       RETURN
  125. 1250   !
  126. 1260  Sys_menu:!
  127. 1270       STATUS @Syst;RETURN ("*NAME":Panel$,"SYSTEM MENU EVENT":Sys_event)
  128. 1280       Space=POS(Sys_menu$(Sys_event)," ")
  129. 1290       SELECT Sys_menu$(Sys_event)[1,Space-1]
  130. 1300       CASE "ENABLE"
  131. 1310           ENABLE EVENT @Syst,Sys_menu$(Sys_event)[Space+1]
  132. 1320           Action$="DISABLE"
  133. 1330       CASE "DISABLE"
  134. 1340           DISABLE EVENT @Syst,Sys_menu$(Sys_event)[Space+1]
  135. 1350           Action$="ENABLE"
  136. 1360       CASE "Quit"
  137. 1370           STOP
  138. 1380       END SELECT
  139. 1390       CONTROL @Syst;SET ("*NAME":Printer$,"APPEND TEXT":Sys_menu$(Sys_event))
  140. 1400       Sys_menu$(Sys_event)=Action$&Sys_menu$(Sys_event)[Space]
  141. 1410       CONTROL @Syst;SET ("*NAME":"Panel","SYSTEM MENU":Sys_menu$(*))
  142. 1420       CONTROL @Syst;SET ("*EVENT NAME FILTER":"SYSTEM MENU")
  143. 1430       STATUS @Syst;RETURN ("*FLUSH QUEUED EVENTS":Events)
  144. 1440       CONTROL @Syst;SET ("*EVENT NAME FILTER":"")
  145. 1450       RETURN
  146. 1460       END
  147.